add_llvm_component_library(LLVMOrcJIT
  CompileOnDemandLayer.cpp
  CompileUtils.cpp
  Core.cpp
  DebugUtils.cpp
  ExecutionUtils.cpp
  IndirectionUtils.cpp
  IRCompileLayer.cpp
  IRTransformLayer.cpp
  JITTargetMachineBuilder.cpp
  LazyReexports.cpp
  Layer.cpp
  LLJIT.cpp
  MachOPlatform.cpp
  Mangling.cpp
  ObjectLinkingLayer.cpp
  ObjectTransformLayer.cpp
  OrcABISupport.cpp
  OrcV2CBindings.cpp
  RTDyldObjectLinkingLayer.cpp
  Speculation.cpp
  SpeculateAnalyses.cpp
  TargetProcessControl.cpp
  ThreadSafeModule.cpp
  TPCDynamicLibrarySearchGenerator.cpp
  TPCEHFrameRegistrar.cpp
  TPCIndirectionUtils.cpp
  ADDITIONAL_HEADER_DIRS
  ${LLVM_MAIN_INCLUDE_DIR}/llvm/ExecutionEngine/Orc

  DEPENDS
  intrinsics_gen

  LINK_COMPONENTS
  Core
  ExecutionEngine
  JITLink
  Object
  OrcShared
  OrcTargetProcess
  MC
  Passes
  RuntimeDyld
  Support
  Target
  TransformUtils
  )

add_subdirectory(Shared)
add_subdirectory(TargetProcess)

target_link_libraries(LLVMOrcJIT
  PRIVATE
  LLVMAnalysis
  LLVMBitReader
  LLVMBitWriter
  LLVMPasses
  )
